package com.xgq.drink.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 优惠信息表
 * </p>
 *
 * @author xgq
 * @since 2025-03-04
 */
@Getter
@Setter
@TableName("discount_info")
public class DiscountInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 优惠ID
     */
    @TableId(value = "discount_id", type = IdType.AUTO)
    private Long discountId;

    /**
     * 优惠名称
     */
    private String discountName;

    /**
     * 优惠类型（会员、店铺、官方、专属商品）
     */
    private String discountType;

    /**
     * 商户ID（会员和官方优惠可为空）
     */
    private Long shopId;

    /**
     * 商品ID（可选，用于专属商品优惠）
     */
    private Long productId;

    /**
     * 优惠描述
     */
    private String description;

    /**
     * 优惠金额或折扣率
     */
    private BigDecimal discountValue;

    /**
     * 优惠开始日期
     */
    private LocalDate startDate;

    /**
     * 优惠结束日期
     */
    private LocalDate endDate;

    /**
     * 每个用户最多领取次数
     */
    private Integer maxUserClaims;

    /**
     * 创建时间
     */
    private LocalDateTime createdAt;

    /**
     * 更新时间
     */
    private LocalDateTime updatedAt;

    private Integer status;
    /**
     * 优惠策略 1为直扣 2为折扣
     */
    private Integer discountStrategy;
    /**
     * 满减额度，直扣,均可设置满减
     */
    private BigDecimal fullReduction;
    private Integer discountNum;

    // 乐观锁版本号字段
    @Version
    @TableField("version")
    private Integer version;
}
